<table class="configuration table table-bordered">
    <thead>
        <tr>
            <th class="text-left" style="width: 20%">Key</th>
            <th class="text-left" style="width: 15%">Default</th>
            <th class="text-left" style="width: 10%">Type</th>
            <th class="text-left" style="width: 55%">Description</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><h5>high-availability.zookeeper.client.acl</h5></td>
            <td style="word-wrap: break-word;">"open"</td>
            <td>String</td>
            <td>Defines the ACL (open|creator) to be configured on ZK node. The configuration value can be set to “creator” if the ZooKeeper server configuration has the “authProvider” property mapped to use SASLAuthenticationProvider and the cluster is configured to run in secure mode (Kerberos).</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.connection-timeout</h5></td>
            <td style="word-wrap: break-word;">15 s</td>
            <td>Duration</td>
            <td>Defines the connection timeout for ZooKeeper.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.ensemble-tracker</h5></td>
            <td style="word-wrap: break-word;">true</td>
            <td>Boolean</td>
            <td>Defines whether Curator should enable ensemble tracker. This can be useful in certain scenarios in which CuratorFramework is accessing to ZK clusters via load balancer or Virtual IPs. Default Curator EnsembleTracking logic watches CuratorEventType.GET_CONFIG events and changes ZooKeeper connection string. It is not desired behaviour when ZooKeeper is running under the Virtual IPs. Under certain configurations EnsembleTracking can lead to setting of ZooKeeper connection string with unresolvable hostnames.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.max-retry-attempts</h5></td>
            <td style="word-wrap: break-word;">3</td>
            <td>Integer</td>
            <td>Defines the number of connection retries before the client gives up.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.max-retry-wait</h5></td>
            <td style="word-wrap: break-word;">1 min</td>
            <td>Duration</td>
            <td>Defines the maximum retry wait time in milliseconds for each attempt. This caps the exponential backoff to prevent excessively long waits between retries.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.retry-wait</h5></td>
            <td style="word-wrap: break-word;">5 s</td>
            <td>Duration</td>
            <td>Defines the pause between consecutive retries.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.session-timeout</h5></td>
            <td style="word-wrap: break-word;">1 min</td>
            <td>Duration</td>
            <td>Defines the session timeout for the ZooKeeper session.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.client.tolerate-suspended-connections</h5></td>
            <td style="word-wrap: break-word;">false</td>
            <td>Boolean</td>
            <td>Defines whether a suspended ZooKeeper connection will be treated as an error that causes the leader information to be invalidated or not. In case you set this option to <code class="highlighter-rouge">true</code>, Flink will wait until a ZooKeeper connection is marked as lost before it revokes the leadership of components. This has the effect that Flink is more resilient against temporary connection instabilities at the cost of running more likely into timing issues with ZooKeeper.</td>
        </tr>
        <tr>
            <td><h5>high-availability.zookeeper.path.execution-plans</h5></td>
            <td style="word-wrap: break-word;">"/execution-plans"</td>
            <td>String</td>
            <td>ZooKeeper root path (ZNode) for execution plans</td>
        </tr>
    </tbody>
</table>
